/*
* Copyright (C) 2020 ~ 2024 chaigec All Rights Reserved.
*
* Author:     chaigec <chaigec@163.com>
* Maintainer: chaigec <chaigec@163.com>

 * Use of this source code is governed by MIT license that can be found in the
 * LICENSE file in the root of the source tree. All contributing project authors
 * may be found in the AUTHORS file in the root of the source tree.
*/

#ifndef MK_RTSP_REQUEST_H
#define MK_RTSP_REQUEST_H
#include "MkRtspMessage.h"

class MkApi CMkRtspRequest : public CMkRtspMessage
{
public:
    CMkRtspRequest();
    ~CMkRtspRequest();
    const MkRtspMethod& GetMethod() const { return m_Method; }
    const MkString& GetUri() const { return m_Uri; }
    MkString& GetVersion() { return m_Version; }
    void SetMethod(const MkRtspMethod& Method) { m_Method = Method; }
    void SetUri(const MkString& Uri) { m_Uri = Uri; }
    void SetVersion(const MkString& Version) { m_Version = Version; }
protected:
    virtual Uint32 OnPacketHeaderLine(OUT MkString& strHeader) override;
    virtual Uint32 OnParseHeaderLine(const MkString& strHeader) override;
private:
    //Request-Line = Method SP Request-URI SP RTSP-Version CRLF
    MkRtspMethod								m_Method;
    MkString									m_Uri;
    MkString									m_Version;
};



#endif